

const $ = ele => document.querySelector(ele) ;



function ajax(options) {
    // 解构
    const {
        data = {} , 
        type , 
        path , 
        dataType = 'JSON' , 
        async = true ,
        success
    } = options ;

    // 拼接数据
    let params = '' ;
    // 遍历data
    for(let key in data) {
        // console.log(key);  // username   userpwd
        // console.log(data[key]);   // yy   666
        params += `${key}=${data[key]}&` ;
    }

    // 去掉最后一个&
    params = params.substring(0 , params.length - 1) ;

    const xhr = new XMLHttpRequest() ;

    // 判断请求方式
    if(type.toLowerCase() === 'get') {
        xhr.open(type , path + '?' + params , async) ;
        xhr.send() ;
    }
    else {
        xhr.open(type , path , async) ;
        xhr.setRequestHeader('content-type' ,'application/x-www-form-urlencoded') ;
        xhr.send(params) ;
    }

    xhr.onreadystatechange = function() {
        if(xhr.readyState === 4 && xhr.status === 200) {
            // 获取了后端返回的数据
            let res = xhr.responseText ; 
            if(dataType.toLowerCase() === 'json') {
                res = JSON.parse(res) ;
                
            }
            success(res);
        }
    }

}


// 切割地址栏  拿到指定的字段名
function queryString(name) {
    const url = location.search.replace('?' , '') ;
    let arr = url.split('&');
    // console.log(arr);
    arr = arr.map( v=> {

        return {
            name : v.split('=')[0] ,
            content : v.split('=')[1]
        }
    })
    // console.log(arr);

    const res = arr.filter( v => v.name === name)[0] ;
    if(res) {
        return res.content
    }
    return ''
}




// 设置cookie
// 形参  名称，内容，时间
const setCookie = (name , content , days = 7) => {
    const date = new Date() ;
    // 小时推慢8个小时
    date.setHours(date.getHours() - 8) ;
    // 天数推迟days天
    date.setDate(date.getDate() + days) ;
    document.cookie = `${name}=${content};path=/;expires=${date}` ;
}


// 获取所有的cookie
// 返回的是数组对象
const getCookies = () => {
    const cookies = document.cookie ;
    let arr = cookies.split('; ') ;
    arr = arr.map( v => {
        const arr2 = v.split('=') ;
        return {
            name : arr2[0] , 
            content : arr2[1]
        }
    })
    return arr 
}

// 获取指定的cookie
const getCookie = name => {
    const arr = getCookies() ;
    const res = arr.filter( v => v.name === name)[0];
    if(res) {
        // 找到的时候，返回一个对象
        // return res

        // 返回的是内容
        return res.content
    }
    // 找不到的时候返回空值
    return ''
}


// 删除cookie
// 参数  名称
const removeCookie = name => {
    setCookie(name , '' , -1) ;
}



const getEle = s => document.querySelector(s) ;

const getEles = s => document.querySelectorAll(s) ;